package es.tikitaka.dao;

import java.util.List;

import es.tikitaka.dictionary.MunicipioDic;
import es.tikitaka.dictionary.ProvinciaDic;
import es.tikitaka.domain.Direccion;

/**
 * 
 * @author Saúl Domínguez
 * @since 2010
 * @category PFC
 */

public interface DireccionService {

	/**
	 * Método para listar todas las direciones almacenadas en el sistema
	 * 
	 * @return lista de direcciones
	 */
	List<Direccion> getList();

	/**
	 * Método para comprobar si existe una dirección o no
	 * 
	 * @param direccion
	 *            lugar de residencia
	 * @param provincia
	 *            Provincia
	 * @param municipio
	 *            Municipio
	 * @return dirección en el caso de que exista
	 */
	Direccion buscar(String direccion, ProvinciaDic provincia,
			MunicipioDic municipio);

	/**
	 * Método para eliminar una dirección del sistema
	 * 
	 * @param id
	 *            Id de la dirección a eliminar
	 * @return estado de la operción (true or false)
	 */
	boolean delete(Integer id);

	/**
	 * Método para guardar una dirección en el sistema o las modificaciones de
	 * una dirección ya existente
	 * 
	 * @param direccion
	 *            Direccion a guardar en el sistema
	 * @return estado de la operación (true or false)
	 */
	boolean save(Direccion direccion);
}
